package cn.zane.chatgpt.data.domain.auth.service;

import cn.zane.chatgpt.data.domain.auth.model.entity.AuthStateEntity;
import jakarta.servlet.http.HttpServletRequest;

import java.security.NoSuchAlgorithmException;

/**
 * @author: zane
 * @date: 2025-09-19
 * @description: 鉴权验证服务接口
 * 步骤： 前端生成一个浏览器指纹，请求服务器一个验证码，存储在浏览器缓存，进行显示，让用户发送验证码，
 * 用户通过公众号发送验证码后，解锁所有的文章。
 * 问题：如何确定，当前浏览器是否已经解锁了？ 前端轮训，将token=验证码请求check接口，返回success既解锁所有文章
 */
public interface IAuthService {

    String generateAccessCode(HttpServletRequest request) throws NoSuchAlgorithmException;

    /**
     * 登录验证
     * @param code 验证码
     * @return token
     */
    AuthStateEntity doLogin(String code);

    boolean checkToken(String token);

    String openid(String token);
}
